#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include <limits.h>
#include <ctype.h>

#define MAX_N 100

int
main(int argc, char **argv)
{
	static int am[MAX_N][MAX_N];
	int i, j, n;

	scanf("%d", &n);
	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++)
			scanf("%d", &am[i][j]);

	for (i = 0; i < n; i++)
		if (am[i][i]) {
			fputs("NO\n", stdout);
			return 0;
		}

	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++)
			if (am[i][j] != 0 && am[i][j] != 1 ||
					am[i][j] != am[j][i]) {
				fputs("NO\n", stdout);
				return 0;
			}

	fputs("YES\n", stdout);
	return 0;
}
